package com;

import java.util.Set;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;


/**
 * @description ${classInfo.classComment}
 * @author ${authorName}
 * @date ${.now?string('yyyy-MM-dd')}
 */
@FeignClient(name = "biz-aaaaa-bbbbb")
public interface Remote${classInfo.className}Service {

  /**
   * @see ${classInfo.className}Controller#list
   * @param page
   * @param dto
   * @return
   */
  @GetMapping("/innerapi/aaaaa/aaaaa/pic")
  TableDataInfoCustom<${classInfo.className}Bean> list(//
      @SpringQueryMap ${classInfo.className}QueryDTO query//
      );

  /**
   * @see ${classInfo.className}Controller#get
   * @param id
   * @return
   */
  @GetMapping("/innerapi/aaaaa/aaaaa/pic/{id}")
  AjaxResultCustom<${classInfo.className}Bean> get(//
	      @PathVariable Long id, //
	      @SpringQueryMap ${classInfo.className}QueryDTO query//
	  );

  /**
   * @see ${classInfo.className}Controller#add
   * @param dto
   * @return
   */
  @PostMapping("/innerapi/aaaaa/aaaaa/pic")
  AjaxResultObject add(@RequestBody ${classInfo.className}AddDTO dto);

  /**
   * @see ${classInfo.className}Controller#edit
   * @param id
   * @param dto
   * @return
   */
  @PutMapping("/innerapi/aaaaa/aaaaa/pic/{id}")
  AjaxResultObject edit(@PathVariable Long id, @RequestBody ${classInfo.className}EditDTO dto);

  /**
   * 
   * @see ${classInfo.className}Controller#remove
   * remove
   * @param ids
   * @return
   */
  @DeleteMapping("/innerapi/aaaaa/aaaaa/pic")
  AjaxResultObject remove(Set<Long> ids);

  /**
   * @see ${classInfo.className}Controller#remove
   * remove
   * @param ids
   * @return
   */
  @DeleteMapping("/innerapi/aaaaa/aaaaa/pic/{id}")
  AjaxResultObject remove(@PathVariable Long id);
}
